package top.llove.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import top.llove.pojo.dto.ArticleAdminDto;

import java.util.List;

/**
 * 文章Mapper
 *
 * @author: 幸会
 * @date: 2021/6/17 16:01
 * @email: 1846724873@qq.com
 * @description: 文章Mapper
 * version: 1.0
 */
@Mapper
@Repository
public interface ArticleMapper {

    /**
     * 根据文章id，或文章标题模糊查询
     * @param id 文章id
     * @param title 文章标题
     * @return
     */
    List<ArticleAdminDto> select(@Param("id") String id,
                                 @Param("title") String title,
                                 @Param("kind") String kind,
                                 @Param("user") String user);

    /**
     * 添加文章
     * @param title 文章标题
     * @param img 文章图片
     * @param desc 文章描述
     * @param context 文章内容
     * @param kind 文章分类
     * @param user 文章所属管理员
     * @return
     */
    Integer save(@Param("title") String title,
                 @Param("img") String img,
                 @Param("desc") String desc,
                 @Param("context") String context,
                 @Param("kind") String kind,
                 @Param("user") String user);

    /**
     * 修改文章
     * @param title 文章标题
     * @param img 文章图片
     * @param desc 文章描述
     * @param context 文章内容
     * @param kind 文章种类
     * @param id 文章id
     * @return
     */
    Integer edit(@Param("title") String title,
                 @Param("img") String img,
                 @Param("desc") String desc,
                 @Param("context") String context,
                 @Param("kind") String kind,
                 @Param("id") String id);

    /**
     * 删除文章，删除指定文章或删除管理员所有文章
     * @param id 文章id
     * @param user 管理员id
     * @param kind 文章分类
     * @return
     */
    Integer delete(@Param("id") String id,
                   @Param("user") String user,
                   @Param("kind") String kind);

}
